package com.oracle.admin.service.api;

import com.oracle.pojo.Admins;
import com.oracle.vo.ResultEntity;

import java.util.List;

public interface AdminServiceApi {

    /**
     * 获取指定登录账号的管理员信息
     * @param loginname
     * @return 管理员对象
     */
    ResultEntity<Admins> findAdminByLoginname(String loginname);

    /**
     * 查询指定id的管理员下所有的权限集合
     * @param id
     * @return
     */
    ResultEntity<List<String>> getpermissionByLoginid(Integer id);

    /**
     * 修改用户信息
     * @param admin
     * @return
     */
    ResultEntity updateAdmin(Admins admin);

    /**
     * 获取管理员列表
     * @return
     */
    ResultEntity<List<Admins>> findAdminsAll();

    /**
     * 添加管理员并维护管理员与角色关系
     * @param admins
     * @param roleids
     * @return
     */
    ResultEntity addAdminAndRoles(Admins admins, Integer[] roleids);

    /**
     * 根据ID获取指定的管理员信息
     * @param id
     * @return
     */
    ResultEntity<Admins> findAdminById(Integer id);

    /**
     *  删除指定ID的管理员信息
     * @param id
     * @return
     */
    ResultEntity<Admins> deleteAdminById(Integer id);

    /**
     * 获取指定管理员ID的所有角色列表
     * @param id
     * @return
     */
    ResultEntity<List<Integer>> getRolesByAdminId(Integer id);

    /**
     * 修改管理员信息和维护管理员的角色信息
     * @param admin
     * @param roleids
     * @return
     */
    ResultEntity updateAdminAndRoles(Admins admin, Integer...roleids);
}
